"""
返回值：函数执行结束后，返回给调用处的结果。
    需要使用return关键字，
        1.将结果返回给调用处
        2.结束了方法的执行
"""


# 求 1 - n 的和

def getsum(n):
    sum1 = 0
    for i in range(1, n + 1):
        sum1 += i
    print(sum1)
    return sum1
    # print('我在return下面') # 千万别这么写, return 下边的语句不执行


a = getsum(100)
b = getsum(200)

#
# c = getsum(100) + getsum(200)
# print('c:', c)
print(type(a))
print(type(b))

print('a:', a)
print('a:', getsum(100))
print('a:', getsum)
print('b:', b)
#
#
# def xy_sum(x, y):
#     print(x + y)
#
#
# xy_sum(a,b)


"""
练习1：定义一个函数，接收两个参数，用于比较两个数的大小，并将大的数返回。
练习2：定义一个函数，用于接收两个参数，求和，并将结果返回。
"""


def get_sum(x, y):
    i = x + y
    print(i)
    return i


get_sum(1, 2)

print(get_sum(1, 3))

# 关于返回值得其他内容
# 1.如果函数没有返回值
# 2. 函数可以返回的数据类型：数值，字符串，列表，元组。。。

"""
练习1：定义一个函数，用于接收一个列表作为参数，判断列表中的每一个年份，是否是闰年，如果是返回

练习2：定义一个函数，接收给定年份，和月份，返回该月的天数。
"""


def get_day(year, month):
    # pass
    # year 影响二月份天数
    # 如果是闰年,二月 29
    #         平年,    28
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        # 这年就是闰年
        if month == 2:
            return 29
    else:
        # 不是闰年
        if month == 2:
            return 28
    list1 = [1, 3, 5, 7, 8, 10, 12]
    list2 = [4, 6, 9, 11]

    if month in list1:
        return 31
    elif month in list2:
        return 30


def get_day2(year, month):
    # pass
    # year 影响二月份天数
    # 如果是闰年,二月 29
    #         平年,    28
    day = 0
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
        # 这年就是闰年
        if month == 2:
            day = 29
    else:
        # 不是闰年
        if month == 2:
            day = 28
    list1 = [1, 3, 5, 7, 8, 10, 12]
    list2 = [4, 6, 9, 11]

    if month in list1:
        day = 31
    elif month in list2:
        day = 30

    return day


print(get_day(2001, 4))
print(get_day2(2001, 4))


